Oracle数据库内存使用情况分析查看;内存占用过高 | 您所在的位置:网站首页 › linux内存占满 oracle › Oracle数据库内存使用情况分析查看;内存占用过高 |
查看会话内存占用情况 SELECT server "连接类型", s.username, OSUSEr, NAME, VALUE/1024/1024 "占用内存MB", s.SID "会话ID", s.serial#, spid "操作系统进程ID", p.PGA_USED_MEM, p.PGA_ALLOC_MEM, p.PGA_FREEABLE_MEM, p.PGA_MAX_MEM FROM v$session s, v$sesstat st, v$statname sn, v$process p WHERE st.SID = s.SID AND st.statistic# = sn.statistic# AND sn.NAME LIKE 'session pga memory' AND p.addr = s.paddr ORDER BY VALUE DESC 如果想杀死指定会话alter system kill session 'sid,serial#';,内存没有释放执行如下步骤; select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED' ; 查看killed状态的会话, windows下:orakill.exe orcl spid,其中orcl是数据库的sid,spid是上面查询出来的 linux下:kill -9 spid;
SQL消耗资源情况查询: 从V$SQLAREA中查询最占用资源的查询 select b.username username,a.disk_reads reads, a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio, a.sql_text Statement from v$sqlarea a,dba_users b where a.parsing_user_id=b.user_id and a.disk_reads > 100000 order by a.disk_reads desc; 用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。 V$SQL是内存共享SQL区域中已经解析的SQL语句。 列出使用频率最高的5个查询
select sql_text,executions from (select sql_text,executions, rank() over (order by executions desc) exec_rank from v$sql) where exec_rank |
CopyRight 2018-2019 实验室设备网 版权所有 |